The present invention relates to quality assurance processes used in software development, and more particularly, to acceptance testing processes used in software development.
Acceptance testing is a quality assurance process that is used in the software industry for a newly developed software application. It is a process of verifying that the newly developed software application performs in accordance with design specifications for such newly developed software. The goals of acceptance testing are to achieve zero defects in the newly developed software application and on-time delivery of such newly-developed software application. Acceptance testing may be performed for an internally developed software application as well as for an externally developed software application. Acceptance testing may be performed for a software application intended for use internally within a business entity as well as for a software application developed for a client. Acceptance testing may be performed by a software developer, a user of the software or a third party.
However, acceptance testing is often performed in an ad hoc manner. Steps in an acceptance testing process may be repeated or inefficiently performed. Thus, acceptance testing may require a greater amount of time than is ideal and may not effectively eliminate defects in the newly developed software.
A process and system for quality assurance for a newly developed software application is described. The process includes developing a high level quality assurance resource estimate and a high level quality-assurance time estimate; producing a business analysis outline; and creating an acceptance test plan using an acceptance test plan template with the business analysis outline. The process further includes creating a plurality of test cases to be carried out during a test execution phase (i.e., during an acceptance test) of the quality assurance process using the acceptance test plan; refining the high level quality assurance resource estimate and the high level quality assurance time estimate based on at least the acceptance test plan; executing each of the test cases in an acceptance test to produce a set of test results for each of the test cases; and evaluating each of the sets of test results against the refined high level quality assurance resource estimate and the refined high level quality assurance time estimate. One or more defects tracked during the execution of each of the test cases are reported and corrected and a sign off of the acceptance test is negotiated with a client. An application audit package is created and stored for future reference.